/////////////////////////////////////////////////////////////////////////////////////////
//MainDlg.h
//Author: EmbedVision
/////////////////////////////////////////////////////////////////////////////////////////

#ifndef MAINDLG_H_
#define MAINDLG_H_

#include <QtGui/QtGui>
#include "SerialPortLinux.h"

class CMainDlg : public QDialog
{
	Q_OBJECT  /*宏，启动Qt元对象系统的一些特性，必须放置到私有区*/
public:
	CMainDlg(QWidget* = 0);
	virtual ~CMainDlg();
	
protected:
	void moveEvent(QMoveEvent* event);

private slots:		/*槽函数*/
	void openBtn();
	void stopBtn();
	void sendBtn();
	
	void portUsbBtn();
	void portCom1Btn();
	void portCom2Btn();
	void portCom3Btn();

private:
	//按钮对象
	QPushButton*			m_openBtn;
	QPushButton*			m_stopBtn;
	QPushButton*			m_sendBtn;
	QPushButton*			m_cancelBtn;
	
	QPushButton*			m_portUsbBtn;
	QPushButton*			m_portCom1Btn;
	QPushButton*			m_portCom2Btn;
	QPushButton*			m_portCom3Btn;
	
	int						m_com_index;
	
	//列表框对象
	QListWidget*			m_listWidget;
	
private:
	void updateComBtnStatus(int enable_flag, int current_id);
	
private:
	//串口通信对象
	SerialPortLinux			m_com;
	
private:
	//串口功能测试需要的变量
	int						m_send_num;
	
private:
	//串口监听回调函数
	static void ComRecvProc(const char *data, const int data_len);
	void ComRecv(const char *data, const int data_len);

	static CMainDlg*		m_this_module;
};

#endif /* MAINDLG_H_ */
